#pragma once 
#include<iostream>
#include<queue>
using namespace std;
namespace hcc
{
    template<class T,class comtainer=std::deque<T>>
    class queue 
    {
        public:
            typedef typename std::deque<T>::iterator iterator;
            void push(const T& x)
            {
                _con.push_back(x);
            }
            void pop()
            {
                _con.pop_front();
            }
            bool empty()const 
            {
                return _con.empty();
            }
            T& top()
            {
                return _con[0];
            }
            size_t size()
            {
                return _con.size();
            }
            //实际的queue中没有迭代器，这里只是为了方便检查,不建议使用
            iterator begin()
            {
                return _con.begin();
            }
            iterator end()
            {
                return _con.end();
            }
        private:
            comtainer _con;
    };
}
